package com.lyn.chapter2.demo2;

import com.lyn.kit.Tools;

public class ThreadJoinVisibility {
	static int data = 0;
	public static void main(String[] args) {
		Thread thread = new Thread() {
			@Override
			public void run() {
				Tools.randomPause(50);
				data = 1;
			}
		};
		thread.start();
		try {
			/*在main函数中执行线程tread的join方法，因此main函数会立刻停止执行，
			然后立刻执行thread线程的run方法。
			run执行完毕后再接着执行main函数的剩余代码。
			在thread中对共享变量进行更新后，main函数也能看到。
			*/
			thread.join();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(data); //1
	}
}
